package com.ssm.car.dao.mapper.parkinglot;

import com.github.pagehelper.PageInfo;
import com.ssm.car.dao.model.Parkinglot;
import com.ssm.upms.dao.mapper.ssm.LzDao;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 2017年5月23日  闫增宝
* 停车位管理 Dao
* @author GaoXiang
* @version 1.0
*/
@Repository
public class ParkinglotDao extends LzDao<Parkinglot> {



    /**
    * 保存数据
    * @param parkinglot 实体对象
    * @return 实体id
    * @throws Exception 数据保存异常
    */
    public Integer insert(Parkinglot parkinglot) throws Exception {
        return insert("ParkinglotMapper.insert",parkinglot);
    }

    /**
    * 根据 id 修改
    * @param parkinglot 带id的实体对象
    * @return 受影响的行数
    * @throws Exception 数据修改异常
    */
    public Integer updateById(Parkinglot parkinglot) throws Exception {
        return update("ParkinglotMapper.updateById",parkinglot);
    }

    /**
    * 根据 id 删除
    * @param id 数据id
    * @return 受影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteById(String id) throws Exception {
        return delete("ParkinglotMapper.deleteById",id);
    }

    /**
    * 根据 id 查找
    * @param id 实体id
    * @return 实体
    */
    public Parkinglot selectById(String id) {
        return selectOne("ParkinglotMapper.selectById",id);
    }

    /**
    * 根据 id 批量删除
    * @param ids 要删除的id
    * @return 影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteByIds(List<String> ids) throws Exception {
        return delete("ParkinglotMapper.deleteByIds",ids);
    }

    /**
    * 查询列表
    * @param map 参数
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map) {
        return list("ParkinglotMapper.list",map);
    }

    /**
    * 查询列表 带分页
    * @param map 参数
    * @param page 页码
    * @param size 每页大小
    * @return 列表
    */
    public PageInfo<Parkinglot> list(Map map, int page, int size) {
        return list("ParkinglotMapper.list",map,new RowBounds(page,size));
    }

    /**
     * 根据parking_id删除
     * 2017-6-1 15:01:13 韩榕榕
     * @param parkingId
     * @return 受影响的行数
     * @throws Exception 数据删除异常
     */
    public Integer deleteByParkingId(String parkingId) throws Exception {
        return delete("ParkinglotMapper.deleteByParkingId",parkingId);
    }

    /**
     * 根据parking_id批量删除
     * 2017-6-1 15:03:28 韩榕榕
     * @param parkingIds
     * @return 受影响的行数
     * @throws Exception 数据删除异常
     */
    public Integer deleteByParkingIds(List<String> parkingIds) throws Exception {
        return  delete("ParkinglotMapper.deleteByParkingIds",parkingIds);
    }

    /**
     * 根据parking_id查询
     * 2017-6-1 16:27:36 韩榕榕
     * @param id
     * @return
     */
    public List<Parkinglot>  selectByParkingId(String id){
        return  arrayList("ParkinglotMapper.selectByParkingId",id);
    }


    public List<Parkinglot> selectByParkingIds(List<String> ids){
        return  arrayList("ParkinglotMapper.selectByParkingIds",ids);
    }

    /**
     * 根据停车场id 查询 带地锁的并且 空闲的车位
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> selectByParkingIdAndLock(Parkinglot parkinglot) {
        return arrayList("ParkinglotMapper.selectByParkingIdAndLock",parkinglot);
    }

/*
    */
/**
     * 2017年6月2日  闫增宝
     * 判断这个地锁  有没有绑定车位
     * @param lock
     * @return
     *//*

    public Parkinglot selectByLock(Lock lock) {
        return selectOne("ParkinglotMapper.selectByLock",lock);
    }
*/


    /**
     * 同一停车场下统计同一个车位序号的个数
     * @param parkinglot 实体
     * @return
     */
    public Long countParkinglot(Parkinglot parkinglot){
        return count("ParkinglotMapper.countParkinglot",parkinglot);
    }

    public List<Parkinglot> selectByParking(String parkingId) {
        return arrayList("ParkinglotMapper.selectByParking",parkingId);
    }

    /**
     * 根据地锁的id查询
     * 2017-6-3 12:41:21 韩榕榕
     * @param lockId
     * @return
     */
    public Parkinglot selectByLockId(String lockId){
        return  selectOne("ParkinglotMapper.selectByLockId",lockId);
    }

    /**
     * 根据地锁的id查询（多个）
     * 2017-6-3 12:41:16 韩榕榕
     * @param lockIds
     * @return
     */
    public List<Parkinglot> selectByLockIds(List<String> lockIds){
        return  arrayList("ParkinglotMapper.selectByLockIds",lockIds);
    }

    /**
     * 根据id查询
     * @param ids
     * @return
     */
    public List<Parkinglot> selectByIds(List<String> ids){
        return  arrayList("ParkinglotMapper.selectByIds",ids);
    }
    /**
     * 根据id查询
     * @param parkinglot
     * @return
     */
    public List<Parkinglot> findByParkingId(Parkinglot parkinglot){
        return  arrayList("ParkinglotMapper.findByParkingId",parkinglot);
    }
    /**
     * 根据分区查分区图片
     * @param zoneId
     * @return
     */
    public Parkinglot findZoneImg(String zoneId){
        return  selectOne("ParkinglotMapper.findZoneImg",zoneId);
    }

}
